Immediate Operands 常數運算元

經過統計
這些經常被我們所使用到的常數往往都並不大
如果我們只能使用前面所提到的load word這樣子的指令
當我們需要使用常數時
都必須從memory把常數搬移到register
然後才能使用
那麼將大幅的增加prossesor以及memory彼此之間資料溝通的數量

解決 :

把一些經常使用到的常數直接的嵌入到指令裡面

當我們的prossesor把指令讀出來的同時
其實也已經把常數給讀出來了

I formate (Immediate formate)

例如 : addi (add immediate)

addi $29,$29,4
把29號暫存器裡面的值跟這個4 也就是常數 相加
加完的結果再把它放回到29號暫存器裡面
Design Principle 3 : Make the common case fast
跟andal's law的觀念是一樣的
"力氣要花在刀口上"
我們要把經常使用到的情況盡可能的加速
  • R formate
1 Op 3 Reg
  • I formate
1 Op 2 Reg 1Imm

差異在最後1個參數

一個是register type一個是immediate type

寫程式都知道最常用的是0,所以應該要把它放在一個非常快的地方
在MIPS的指令集裡面
強迫規定register 0 (0號暫存器)
它的值必須恆為0
而且絕對不能夠更改
所以
addi $0,$0,5不會發生任何作用

results matching ""

    No results matching ""